System and method for provisioning user computing devices based on sensor and state information

ABSTRACT

A system and method is provided for using information broadcast by devices and resources in the immediate vicinity of a mobile device, or by sensors located within the mobile device itself, to ascertain and make a determination of the immediate environment and state of the mobile device. This determination may be used to control and manage the actions that the device is asked to carry out by or on behalf of the user.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to the delivery, discovery, management andcontrol of information to mobile consumers, and more particularly toconsumers who have access to multiple devices, capabilities andnetworks, and to the efficient use and control of these resources toconsume and generate information.

Description of the Related Art

It has become customary for people to generate and consume informationin a variety of contexts and situations. This need is never moreprominent as when people are mobile. Starting with the simply statedneed to be “reachable,” people now want to be connected to variousinformation resources and use rite associated networks and resources tocarry out simple and complex tasks that they face everyday.

A decade or so ago, the personal computer (PC), either desktop orlaptop, was the main tool for accessing information. A necessary aspectof the PC is that it requires almost the complete attention of the user,i.e., it is difficult to do many other things at the same time as usingthe PC because of the tethering, weight, and form factor of the device.With the advent of mobile computing devices such as smartphones, it isnow commonplace to find people attempting multiple tasks simultaneously,e.g., driving while talking on a mobile phone. In some casesmulti-tasking is useful and advantageous, while in other cases it may bephysically dangerous to others and oneself. Management of capabilitiesthat are potentially available to a consumer would be an extremelyvaluable service.

The systems and methods in use today that enable a user to be“reachable” or to have access rely heavily on the user carrying a mobiledevice. However, mobile devices often have limitations in bandwidth,capacity or connectivity that prevent their use in certain situations.For example, consider a mobile device that may be connected to a networkthat has low bandwidth but is within range of other resources, e.g., adifferent network that provides more bandwidth. A mobile device,however, may only support one network interface and, hence, may not becapable of utilizing the higher bandwidth network because it isconnected to the lower bandwidth network.

Even when a mobile device is connected to a resource (i.e., accessnetwork, display device, storage and computing resource, etc.), it maynot be adequately connected since the suitability of a connectiondepends on the service, i.e., the application that the user intends torun on the device. In present day mobile computing environments someapplications mandate a certain type of network. For example, earlyversions of the iPhone mandated that mobile video could only be accessedusing a WiFi network. More recent versions of the iPhone support bothWiFi and cellular 3G access to mobile video resources, leaving the userto decide which access network to use, or the device uses a programmedpolicy to choose a network type.

The current trend in mobile devices and networks is to support multipleradios and multiple radio access bearers (mRAB), a feature of theso-called 3G UMTS (Universal Mobile Terrestrial System) technology. Withthe introduction of various types of networking technologies, it isexpected that a variety of devices will broadcast information aboutthemselves and their capabilities for other devices to use.

Thus, the ability of devices to carry out multiple simultaneous tasks isexpected to continue to grow. A device concurrently executing amultiplicity of tasks has need for many resources and may carry outthose tasks more efficiently by switching resources around. Apre-determined policy of matching resources to tasks, however, may betoo restrictive. Allowing a single application to demand a resourcewithout knowledge of all the resource options may be of detriment to itand other concurrent applications.

Further, when concurrent applications are being run on a mobile device,the service provider may choose to disallow the concurrent execution ofcertain applications, e.g., initiating a voice call and a mobile videosession while a video session is in progress. Alternatively, certaincombinations of concurrent applications may be allowed or disallowedonly when certain resources are or become available.

For example, in some networks, call forwarding commands were disallowedwhen such commands led from one device to another that was previously inthe call forwarding loop. But detecting such feature interactionproblems is computationally difficult and in general undefined. Theproblem becomes further complicated when external resources become apart of the problem specification.

There is, therefore, a need for an entity to match the needs ofconcurrent mobile applications on a mobile device with the availableresources in the device's environment in order for successfully carryingout or limiting and controlling the tasks at hand.

SUMMARY OF THE INVENTION

These and other drawbacks in the prior art are overcome in large part bya system and method according to embodiments of the present invention.

A telecommunications method in accordance with embodiments of thepresent invention includes receiving registry map information of networkenvironmental indicia from a mobile device concurrently along withlocation information to a home location registry; generating anenvironment map for the mobile device based on the registry mapinformation, the environment map including a device, application, andnetwork component environment; defining service provisioning based onthe environment map in response to a request for service from the mobiledevice, the service provisioning including and excluding predeterminedelements of the environment map; and providing network service inaccordance with the defined service provisioning. In some embodiments,the service provisioning includes accommodating a service providerpolicy. In others, the service provisioning includes accommodating auser selected preference. Further embodiments include defining a usercontext based on the environment map and including or excludingpredetermined elements for provisioning based on the user context.

A telecommunications system in accordance with embodiments of thepresent invention includes a plurality of user devices, the user devicesconfigured to monitor available resources and dynamically maintain aresource registry of the available resources and transmit the registryto a service provider; a service delivery platform associated with theservice provider and configured to dynamically maintain profiles of aplurality of user devices based on the resource registry information andallow access to resources based on the profiles. In some embodiments,the plurality of user device configured to maintain a capabilities listof user device attributes. The user devices may include one or moresensors for identifying a physical device environment and storingphysical device environment information in the registry and may beconfigured to transmit the resource registry information to the serviceprovider during a home location register location update. In someembodiments, the plurality of user devices are configured to transmitthe resource registry information to the service provider asbinary-coded data during a home location register location update. Insome embodiments, the profiles define access based on physical deviceenvironment.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may be better understood, and its numerousobjects, features, and advantages made apparent to those skilled in theart by referencing the accompanying drawings. The use of the samereference symbols in different drawings indicates similar or identicalitems.

FIG. 1 illustrates an exemplary system according to embodiments of thepresent invention.

FIG. 2 illustrates a CL according to embodiments of the presentinvention.

FIG. 3 is a flowchart illustrating operation of embodiments of thepresent invention.

FIG. 4 is a diagram of an exemplary system map according to embodimentsof the present invention.

FIG. 5 is a diagram of an exemplary system map according to embodimentsof the present invention.

FIG. 6 is a flowchart illustrating operation of embodiments of thepresent invention.

FIG. 7 is an exemplary SDP in accordance with embodiments of the presentinvention.

FIG. 8 is an exemplary user device in accordance with embodiments of thepresent invention.

FIG. 9 is a flowchart illustrating operation of embodiments of thepresent invention.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

In accordance with embodiments of the present invention, a system andmethod is provided for using information broadcast by devices andresources in the immediate vicinity of a mobile device, or by sensorslocated within the mobile device itself, to ascertain and make adetermination of the immediate environment and state of the mobiledevice. This determination may be used to control and manage the actionsthat the device is asked to carry out by or on behalf of the user.

Advantageously, a carrier can define hundreds of device profiles andautomatically and dynamically associate them with user devices, based onthe device sensing its environment. The profiles allow or disallowcertain actions or combinations of actions, as will be described ingreater detail below.

Embodiments of the present invention address locating mobile devices ina telecommunications network that uses a mechanism of “paging requests”by certain network elements and “location updates” by mobile devices toupdate and maintain a database called the Home location register (HLR).The term “location” typically refers to the cellular site (cell site)within which the mobile device was last known to be located, althoughother location methods may be employed.

In accordance with embodiments of the present invention, paging requestsand location updates include not only cell site information, but alsothe availability of other access networks to the mobile device such asWiFi, Bluetooth, WiMax, etc. Moreover, any other resources, e.g.,display devices, that could be used in conjunction with the mobiledevice that are “attached” to the new access network and which“announce” their capabilities and availability are also included in theupdates. Internal sensor information, such as device orientation, mayalso be provided.

The information so obtained from the environment surrounding a mobiledevice is captured in a series of update messages, referred to asresource updates, by a network facility that processes and stores themessages.

In an exemplary embodiment of the present invention, the mobile devicecontains a registry wherein all applications are authenticated andregistered before they can be used in the mobile device. The registrymay additionally contain a profile stating what resources an applicationneeds. A network facility uses an application profile and theinformation obtained from resource updates to dynamically assign aprofile to the mobile device. This profile may be re-assigned andmodified whenever the resource updates or the registry information inthe mobile device warrant a change based on service logic executing inthe network facility.

Consider, for example, a mobile device that is engaged in a voicetelephone call connected to a circuit-switched network. Assume themobile device contains applications for streaming mobile video and SMStext messaging, the applications registered within the registry of themobile device. The mobile device will have an associated profile in thenetwork facility that details the resources available to the mobiledevice, i.e., the circuit-switched network, the mobile video and SMSapplications, and any resources needed by the applications.

Now, assume a Bluetooth access network announces itself, itscapabilities and its resources. For example, the Bluetooth network mayannounce its type is “automobile” and that it supports a display devicewith certain attributes, e.g., resolution, size, etc. Assume the mobiledevice attaches itself to the new network.

The mobile device will update its registry to include the Bluetoothnetwork and its associated display device. Resource updates from themobile device to the network facility likewise now list the new accessnetwork available to the device (Bluetooth), and any resources that havebecome available, i.e., the new display device.

This causes the network facility to assign a new profile to the mobiledevice wherein delivery and display of mobile video may now beeffectuated on the newly discovered display device, i.e., the monitor inthe automobile. Moreover, a policy, restriction stated by the serviceprovider preventing SMS messages from being received and initiated whilein an automobile may cause the registry to disable the SMS application,thus preventing the user from launching or receiving SMS messages.

Thus, the user may now view mobile content on the automobile display,rather than on the display of the mobile device, and may not initiate orreceive SMS messages while connected to the automobile's Bluetoothnetwork. Alternatively, the service provider may choose to display awarning message to the user without disabling any of the applications inthe mobile device.

Similarly, the device internal sensors may identify a particularphysical orientation or other characteristic of the device, and causethe network facility to enable or disable based thereon. For example, ifthe device is being held to the ear, then a rule may be provided thatvideo content is on the automobile display other than the mobile devicedisplay.

Turning now to the drawings and, with particular attention to FIG. 1, adiagram of a telecommunications system 100 according to an embodiment ofthe present invention is shown. The telecommunications system 100 mayinclude a network facility, such as a service delivery platform 102,which may include or be in communication with a resource map 104, aresource profile 106, and a recognition unit 115.

As will be explained in greater detail below, the resource map 104contains an environment map of resources available to particular users,while the resource profile 106 defines particularized rules for makingthose resources available. The recognition unit 115, as will beexplained in greater detail below, contains matching rules for comparingaccess policies to the user device's environment maps. That is, theservice delivery platform 102 makes the resources available to the userdevices in accordance with the resource map 104, profile 106, andrecognition unit 115.

The service delivery platform 102 may include or be in communicationwith one or more user devices 108, and one or more Home Locationregister (HLR) databases 116. Typically, as will be explained in greaterdetail below, an HLR 116 is provided for each cell site in the networkto which the user device is registered. The user devices may furtherinclude or be in communication with resource registries 110,capabilities lists (CL) 112, and resource monitors 114.

As will be explained in greater detail below, the resource monitor 114monitors the network and resource environment (either passively oractively) for devices or resources that have become available orunavailable.

The capabilities lists 112 are lists maintained by all network devicesand resources. Specifically, it is envisaged that networks and devices,i.e., all resources, contain an internal capability list (CL) thatcontains not only the identification number of the resource but alsoattributes that may be of interest and use to applications. For example,a network CL may show the bandwidth, average latency, etc. A storagedevice CL may show the amount of available storage, the random accesstime, etc. A display device CL may show the resolution, number ofpixels, etc. Indeed, the attributes in the CL for Mast popular devicesand networks could be standardized. A particular device or entity's CLmay be updated when it receives a CL from other resources.

The resource registries 110, on the other hand, are registriesmaintained by the user device of CLs of other devices that are currentlyavailable to it. FIG. 2 illustrates an exemplary CL for a display devicethat would be maintained in the registry of, say, a mobile telephone.Attributes in the CL describe the capabilities of the resource, itsexternal interfaces, and intrinsic properties. For example, in the caseof a display device, this can include resolution, display size, refreshrate, etc.

In certain embodiments, the user devices 108 may be implemented astelephones, cellular telephones, PDAs, computers, hard or soft clients,etc. While typically implemented as a smartphone, the user devices 108also may be embodied as personal computers implementing a Windowsoperating system and the Explorer web browser. The user devices 108 thusmay include telephony and other multimedia messaging capability using,for example, peripheral cameras, Webcams, microphones, and speakers (notshown) or peripheral telephony handsets.

In general, while the user devices 108 may implement one or more of thesystems and methods described herein, the user devices also mayimplement one or more client devices or programs that communicate withservices that implement such systems and methods provided remotely. Incertain embodiments, the system 100 may also include other hardwareand/or software components (e.g., gateways, proxy servers, registrationserver, presence servers, redirect servers, databases, applications,etc.

The devices may also contain sensors for the state of the device and/orthe state of its immediate environment, such as temperature andorientation. For example, several current mobile devices, such assmartphones, sense WiFi and cellular networks. Others sense theorientation of the device and allow the display to be used in either aportrait or a landscape mode, using a gravity-based pendulum sensor. Inaddition, proximity sensors turn the display off when the device is heldto the car.

In accordance with embodiments of the present invention, such physicalsensors may be used to define not simply local characteristics of thetelephone, but may be sent to the registry and uploaded to the networkfor use in implementing and/or determining network and device accesspolicies.

As will be discussed in greater detail below, in order to receiveinformation, a mobile device must be located by the network since itcould physically be anywhere in the geographical area. Each mobiledevice periodically generates a message called the location update thatis recorded in a Home Location Register (HLR) 116. The location updatemessage typically contains the identity of the cell site in which themobile device is currently located and some other network-relatedinformation, e.g., signal strength, etc.

Whenever the network needs to reach a mobile device, e.g., to initiatean incoming voice call, it sends a paging request to the last cell sitein which the mobile device was located. Upon receiving the pagingrequest the mobile device may respond to it. If, however, the mobiledevice has re-located to another cell site since the last locationupdate, the paging request goes unanswered.

In accordance with embodiments of the present invention, the locationupdate message from a mobile device 108 is further loaded withinformation about other resources that are currently “available” to themobile device 108. Specifically, resources “announce” or make availabletheir CLs. This may be achieved either by accepting a specific requeston a well-defined interface and responding to the request or by doing abroadcast. The current generation of RFID devices, by way of example,announce themselves through a broadcast mechanism, as do certain WiMaxand Wifi networks. The mobile device 108 receives the announcements andaggregates them into one or more resource updates. In some embodimentsof the present invention, the announcements include other device CLs.The mobile device 108 periodically broadcasts these resource updates,which are then received by the service delivery platform 102.

As can be appreciated, such updates from the user devices to the servicedelivery platform 102 via the HLRs 116 could be bandwidth and/orprocessing intensive. As such, in accordance with embodiments of thepresent invention, any of a variety of techniques may be used tominimize such effects. For example, less-bandwidth-intensive binaryencoding may be used for the uplink registry messages. Alternatively, oradditionally, rather than having the uplink occur every time the HLR isupdated, it may occur only every other time, or every tenth time, or anyother predetermined period. Also, rather than having periodic updates,in some embodiments, the registry upload may occur only if the registryitself has actually been updated.

Furthermore, the service delivery platform 102, in conjunction with therecognition unit 115, the resource map 104 and resource profile 106, mayimplement one or more databases (not shown) that will require speedy andfrequent updates. Accordingly, embodiments of the present invention maymake use of “active” databases to accommodate the heavy traffic.

Turning now to FIG. 3, a flowchart 300 illustrating operation ofembodiment of the present invention is shown. The particular arrangementof elements in the flowchart 300 is not meant to imply a fixed order tothe elements; embodiments can be practiced in any order that ispracticable. More particularly, the flowchart 300 illustrates theaggregation process in a mobile device for a plurality of CLs

In a process step 302, the mobile device 108 receives or discovers a CL.Receipt or discovery may be an out-of-band process and may beaccomplished through the resource broadcasting or otherwise announcingpresence and/or the CL.

In a process step 304, the user device 108 and, particularly, theresource monitor 114, checks if the CL is from a previously knownresource. An affirmative response can lend to updating of the CL in theuser device's lists (typically, the received CL may itself be updatedand thus different from that previously stored), in a process step 306.Once updated, the information is integrated into the next resourceupdate to the service delivery platform 102, as shown at process step312. More particularly, the information is loaded with the locationinformation to the Home Location Register 116, which provides it to theservice delivery platform 102. As noted above, this may be sent withevery HLR update, or on an event basis or some periodic basis, and/orusing a low bandwidth binary encoding.

If, in process step 304, the CL was determined to be unknown, theresource will be registered in the mobile device registry 110, in aprocess step 308. A new CL is created for the new resource from thereceived CL in a process step 310, and the new CL is integrated into aresource update, in a process step 312. Once a resource update is ready,the update is sent to another process 1000 that perpetually loops on atimer at process step 314, and periodically generates a resource update,at steps 316, 318.

As noted above, resource updates from mobile devices are received andstored by the Service Delivery Platform (SDP) 102. Using informationfrom the resource updates, the SDP 102 constructs a conceptual map 104of the immediate environment of a mobile device, generates a resourceprofile 106 of a current environment of the device, and uses therecognition unit 115 to allow or disallow functionality based on themap.

For example, shown in FIG. 4 is a user device 108 that has received CLsfrom other resources 402, 404, 406. The CLs 402, 406, 408 may be, forexample, a cell site, a display resource, and a network resource. Themobile device 108 integrates these CLs into a resource update 408 whichin turn is broadcast by the mobile device 108 and received and stored bythe SDP 102.

The stored representation of the environment is shown at 410 andincludes a cell site 412, a display resource 414 and a network resource416. The resources 412, 414, 416 correspond to the CLs 402, 404, 406,respectively. It is noted that the graphical representation of FIG. 4 isfor purposes of simplicity only; the typical environment map usesinternal digital computer data structures to effectively store objectssuch as CL 402, 404, 406.

In the example illustrated, the informational attributes of CL 402 maydescribe a cell site of a cellular network 412 with interface 420; theinformational attributes of CL 404 may describe a RFID display devicedepicted as 414 with interface 424; and the informational attributes ofCL 406 may describe a WiFi network depicted as 416 with interface 422.The mobile device itself is shown as a unitary structure 430 forpurposes of this depiction but will be discussed later.

Thus, with reference to FIG. 4, the environment map 104 of the mobiledevice 108 shows that the device is in association with a display device414 using interface 424, and has access to two networks 412 and 416using interfaces 420, 422 respectively, the former being a WiFi networkand the latter a cellular network.

The inventions discussed herein do not presuppose that a resource isnecessarily associated exclusively with a single mobile device.Resources may be shared between multiples of mobile devices. It is alsoenvisaged that the SDP 102 maintains an environment map for a pluralityof mobile devices and, typically, maintains one map for all mobiledevices in its purview.

As noted above, the environment map of mobile devices may be used toefficiently deliver to and receive information from the mobile devices.As an exemplary case, consider the problem of delivering video contentfrom a source to the mobile device whose map 104 is depicted in FIG. 5.

The mobile device 108 is associated with a display resource 414, acellular network 412 and a WiFi network 416. Also shown are a variety ofnetwork paths, 101, 201, 301, 501, 601, 701. Given the environment mapof mobile device 108, a service profile 106 (FIG. 1) may be associatedwith the device that specifies that video content from a content server502 may be delivered to either the mobile device 108 or to the displayresource 414 and may further define the network path for the delivery.

In particular, the SDP 102 may choose a network path 101, 201, 301 todeliver the video content to the display resource 424. Alternatively, itmay deliver the video content using the network path 101, 201, 501, 601,301 to the mobile device 108; or it may also use the network path 701,412. The service profile may further direct the mobile device 108 toconsume the video content or to “relay” content to the display resource424. Such a directive may be dictated by policies stated by the serviceprovider. The SDP 102 may contain service logic using exist functions tochoose any one of these paths. It may also use current network trafficand policies to prefer one path over the other possible paths.

If the SDP 102 chooses to deliver the video content to the displayresource 424 and not the mobile device 108, it may first seek permissionfrom the mobile device 100 by engaging in user dialog, such as via agraphical user interface. It is thus apparent that a user of a mobiledevice 108 may request video content from a server and in some cases, asdepicted in FIG. 5, the video content will be received and relayed bythe mobile device 108, to be displayed on a device 424 in closeproximity to the mobile device.

Continuing with the example shown in FIG. 5, if the environment map ofthe mobile device 108 depicts that the device is in association with,for example, a Bluetooth (WiFi) network 416 generated by an automobile,the system and method of the present invention may employ a recognitionunit 114 to examine the environment map 104 of a mobile device 108 torecognize that the mobile device 108 is in a pre-defined context, e.g.,in an automobile and may limit access to features and services inresponse.

This is explained further with reference to FIG. 6. The SDP 102 receivesresource updates in step 602, and determines whether a resource updateis for a new or a previously known mobile device (step 604). Steps 606and 608 incorporate the received resource update into the environmentmap 104. In step 610, a recognition unit 115 containing pre-definedpattern matching rules is invoked that examines the environment map 104for the mobile device 108 with the recently received resource update todetermine if the map matches any of the pattern-rules of the recognitionunit 115.

If a match is found, i.e., the mobile device 108 is determined to be ina pre-defined network or context or environment, e.g., connected to anautomobile wifi network 416; then the recognition unit 115 returns anaffirmative response and may apply a service provider policy to theenvironment of the mobile device, e.g., restrict SMS usage.

In another exemplary embodiment, the SDP 102 may dictate the networkpath chosen to deliver the video content to the display resource 424 andnot to the mobile device 108. The policy enforced by the SDP 102 onbehalf of the service provider may be the result of safetyconsiderations calculated by the service provider. Thus, the user of amobile device 108 in an automobile may view video content on theexternal display provided by the automobile.

Continuing further with the example depicted in FIG. 5, suppose themobile device 108 is to be used to transmit content to the network,i.e., in the uplink direction. Again, it is apparent, that the mobiledevice 108 may query the environment map 104 via the SDP 102 to select asuitable network interface to use for making the transmission.

The present embodiment envisages that computing, display, storage andnetwork resources may be abundantly available to a mobile consumer, andthe consumer may choose to use such resources through the system andmethod described in the present invention. Moreover, as the consumertravels, his environment and availability of resources changes, thechanges being recorded ins the registries and environment mapcorresponding to the user's mobile device.

The description of the present embodiment, so far, has concentrated onthe external resources available to a mobile device 108, and not on theapplications available within the device itself. It is envisaged, aspreviously stated, that mobile devices contain a registry of allapplications that have been loaded on to a mobile device by the serviceprovider or by the user himself. Applications that are not registered inthe registry are considered as “rogue” applications and are outside thescope of the present invention.

As described earlier, the environment map for a mobile device depictsthe immediate environment of the mobile device and the SDP 102 assigns anetwork profile 106 to the mobile device based on the currentenvironment map 104. It is envisaged by the present invention that theSDP 102 is also aware of the applications within the registry of themobile device 108, and when assigning a service profile, may enforce oneor more policies on the profile that cause the enablement or disablementof certain applications in the mobile device or impact delivery ofinformation to the mobile device by other network elements.

Continuing with the example of FIG. 5, the exemplary depiction showsmobile device 108 in association with a WiFi network resource 416generated by an automobile. This association may be assumed to trigger apolicy that disables the web browser and the SMS applications in theregistry of the mobile device 108. Thus, the user of the mobile device108 will not be capable of launching the SMS or the web browserapplications from the mobile device. Furthermore, the service providermay trigger network elements to disable the delivery of messages to themobile device in question, e.g., by marking the status of the mobiledevice as “unavailable” in the HLR will temporarily stop delivery ofmessages, including SMS messages, to the mobile device.

Turning now to FIG. 9, a flowchart 900 illustrating operation ofembodiment of the present invention is shown. The particular arrangementof elements in the flowchart 900 is not meant to imply a fixed order tothe elements; embodiments can be practiced in any order that ispracticable.

In a process step 902, a user device 108 receives or detects theaddition of one or more new programs, resources, or processes that maybe available to it. The new additions can include new CLs 112 and resultin an updated resource registry 110, as discussed above. In a processstep 904, the user device transmits the update to the SDP 102. Asdiscussed above, this can include the user device 108 transmitting alocation signal to the Home Location Register and piggy-backing the CLand registry information on top. The HLR 116 in turn provides theinformation to the SDP 102.

In a process step 906, the SDP 102's resource monitor 114 receives theupdate and provides the information to the resource map 104. Inresponse, in a process step 908, the resource map 104 determines a newenvironment map for the user device (and other devices). In a processstep 910, the SDP 102's recognition unit 115 accesses or updates theresource profile 106 of the particular device whose update has beenreceived. As noted above, the profile includes one or more rules basedon inferences from user contexts resulting from knowledge of the userposition, device orientation, etc.

In a process step 912, the SDP 102 can receive a service request from auser device. For example, as discussed above, this can include requestsfor video content or the like. In a process step 914, in response, theSDP 102's recognition unit 115 determines a user situation or device,i.e., accesses and applies the rules or policy for user access to theprogram or application or resource. Finally, in a process step 914, theSDP 102 can allow access per the rules.

FIG. 7 shows a block diagram of components of a service deliveryplatform or service provider implemented as a computing device 700,e.g., personal, or laptop computer or server. In some embodiments, thecomputing device 700 may implement one more elements of the methodsdisclosed herein.

The system unit 11 includes a system bus or a plurality of system buses21 to which various components are coupled and by which communicationbetween the various components is accomplished. A processor 22, such asa microprocessor, is coupled to the system bus 21 and is supported bythe read only memory (ROM) 23 and the random access memory (RAM) 24 alsoconnected to the system bus 21. The computer 700 may be capable of highvolume transaction processing, performing a significant number ofmathematical calculations in processing communications and databasesearches. A Pentium™ or other similar microprocessor manufactured byIntel Corporation may be used for the processor 22. Other suitableprocessors may be available from Freescale Semiconductor, Inc., AdvancedMicro Devices, Inc., or Sun Microsystems, Inc. The processor 22 also maybe embodied as one or more microprocessors, computers, computer systems,etc.

The ROM 23 contains among other code the basic input output system(BIOS) which controls basic hardware operations such as the interactionof the disk drives and the keyboard. The ROM 23 may be embodied, e.g.,as flash ROM. The RAM 24 is the main memory into which the operatingsystem and applications programs are loaded. The memory management chip25 is connected to the system bus 21 and controls direct memory accessoperations including passing data between the RAM 24 and hard disk drive26 and removable drive 27 (e.g., floppy disk or flash ROM “stick”). A CDROM drive (or DVD or other optical drive) 32 may also be coupled to thesystem bus 21 and is used to store a large amount of data, such as amultimedia program or a large data base.

Also connected to the system bus 21 are various I/O controllers. Thekeyboard controller 28, the mouse controller 29, the video controller30, and the audio controller 31. The keyboard controller 28 provides thehardware interface for the keyboard; the mouse controller 29 providesthe hardware interface for the mouse 13 (or other cursor pointingdevice); the video controller 30 is the hardware interface for the videodisplay 14; and the audio controller 31 is the hardware interface for aspeaker and microphone (not shown). It is noted that while the variousI/O controllers are illustrated as discrete entities, in practice, theirfunctions may be performed by a single I/O controller known as a “superI/O.” Thus, the figures are exemplary only.

In operation, keyboard strokes are detected by the keyboard controller28 and corresponding signals are transmitted to the microprocessor 22;similarly, mouse movements (or cursor pointing device movements) andbutton clicks are detected by the mouse controller and provided to themicroprocessor 22. Typically, the keyboard controller 28 and the mousecontroller 29 assert interrupts at the microprocessor 22. In addition, apower management system 33 may be provided which causes the computer toenter a power down mode if no activity is detected over a predeterminedperiod.

One or more network interfaces 40 enable communication over a network46, such as a packet network like the Internet. The network interfaces40 may be implemented as wired or wireless network interfaces operatingin accordance with, for example, one or more of the IEEE 802.11xstandards and may also or alternatively implement a Bluetooth interface.

One embodiment of the present invention is as a set of instructions in acode module resident the RAM 24. Until required by the computer system,the set of instructions may be stored in another computer memory, suchas the hard disk 26, on an optical disk for use in the CD ROM drive 32,a removable drive 27, or the flash ROM.

As shown in the figure, the operating system 50, resource monitor 104,resource map 106, resource profile(s) 114, and recognition unit 115 areresident in the RAM 24. The operating system 50 functions to generate agraphical user interface on the display 14.

Execution of sequences of the instructions in the programs causes theprocessor 22 to perform various of the process elements describedherein. In alternative embodiments, hard-wired circuitry may be used inplace of, or in combination with, software instructions forimplementation of some or all of the methods described herein. Thus,embodiments are not limited to any specific combination of hardware andsoftware.

The processor 22 and the data storage devices 26, 27, 32 in the computer700 each may be, for example: (i) located entirely within a singlecomputer or other computing device; or (ii) connected to each other by aremote communication medium; such as a serial port cable, telephone lineor radio frequency transceiver. In one embodiment, the computer 100 maybe implemented as one or more computers that are connected to a remoteserver computer.

As noted above, embodiments of the present invention may be implementedin or in conjunction with a telephone, such as a wireless or cellular“smart” telephone. An exemplary cellular telephone 800 includingcapabilities in accordance with an embodiment of the present inventionis shown in FIG. 8. In some embodiments, the cellular telephone 800 mayimplement one or more elements of the methods disclosed herein. Asshown, the cellular telephone includes control logic 802 and cellulartransceiver 804. The cellular transceiver 804 allows communication overa cellular telephone network, such as a GSM or GPRS based cellulartelephone network. The control logic 802 generally controls operation ofthe cellular telephone and, in some embodiments, implements CLs andresource registry, as well as other services or clients in accordancewith embodiments of the present invention.

The control logic 802 interfaces to a memory 818 for storing, amongother things, contact or address lists 107. The control logic 802 alsointerfaces to a user interface(s) 810. The user interface(s) 810 caninclude a keypad 820, speaker 822, microphone 824, and display 826. Thekeypad may include one-or more “hard” keys, but may be implemented inwhole or in part as a cursor pointing device in association with one ormore “virtual” keys on the display 826. In general, a user may make useor the keypad 820 and display 826 to enter contact information, and mayspeak into the microphone to provide the audio input(s). It is notedthat other interfaces, such as voice-activated interfaces may beprovided. Thus, the figure is exemplary only. In addition, a Bluetoothor WiFi interface 806 may be provided. A memory 808 for storing programcode and data, such as the CL 112 and registry 110, also may beprovided.

While specific implementations and hardware/software configurations forthe mobile device and SDP have been illustrated, it should be noted thatother implementations and hardware configurations are possible and thatno specific implementation or hardware/software configuration is needed.Thus, not all of the components illustrated may be needed for the mobiledevice or SDP implementing the methods disclosed herein.

As used herein, whether in the above description or the followingclaims, the terms “comprising,” “including,” “carrying,” “having,”“containing,” “involving,” and the like are to be understood to beopen-ended, that is, to mean including but not limited to. Only thetransitional phrases “consisting of” and “consisting essentially of,”respectively, shall be considered exclusionary transitional phrases, asset forth, with respect to claims, in the United States Patent OfficeManual of Patent Examining Procedures.

Any use of ordinal terms such as “first,” “second,” “third,” etc., inthe claims to modify a claim element does not by itself connote anypriority, precedence, or order of one claim element over another, or thetemporal order in which acts of a method are performed. Rather, unlessspecifically stated otherwise, such ordinal terms are used merely aslabels to distinguish one claim element having a certain name fromanother element having a same name (but for use of the ordinal term).

The above described embodiments are intended to illustrate theprinciples of the invention, but not to limit the scope of theinvention. Various other embodiments and modifications to thesepreferred embodiments may be made by those skilled in the art withoutdeparting from the scope of the present invention.

1.-20 (canceled)
 21. A method for controlling access to a functionalityof a user device, the method comprising: receiving a capabilities list(CL) from one or more external resources available to the user devicevia a Bluetooth wireless network, each CL specifying one or moreattributes of the respective external resource from which it isreceived, the one or more attributes including a network address;storing each of the received CLs in a resource registry associated withthe user device; dynamically updating the resource registry with one ormore updated CLs; determining an environment map for the user device,the environment map comprising resource environment information obtainedfrom the resource registry; matching access policies of the user devicewith the environment map to dynamically assign a profile to the userdevice; and limiting access to mobile applications running on the userdevice based on the profile assigned to the user device.
 22. The methodof claim 21, wherein the one or more external resources include anexternal resource configured to deliver content to a user of the userdevice.
 23. The method of claim 21, wherein the one or more externalresources include at least one of a computing resource, a displayresource, a storage resource, or a network resource.
 24. The method ofclaim 21, wherein the environment map further comprises physicalenvironment information obtained from one or more sensors.
 25. Themethod of claim 24, wherein the physical environment informationcomprises location information.
 26. The method of claim 24, wherein thephysical environment information comprises gravity information.
 27. Themethod of claim 24, wherein the one or more sensors are located withinthe user device.
 28. The method of claim 21, wherein limiting access tomobile applications running on the user device includes limiting displayof content on a display of the user device.
 29. The method of claim 21,wherein the mobile applications include a communication application. 30.The method of claim 29, wherein the communication application is amessaging application.
 31. A user device comprising: a processor; and anon-transitory computer-readable medium comprising instructions storedthereon, that when executed on the processor, perform the steps of:receiving a capabilities list (CL) from one or more external resourcesavailable to the user device via a Bluetooth wireless network, each CLspecifying one or more attributes of the respective external resourcefrom which it is received, the one or more attributes including anetwork address; storing each of the received CLs in a resource registryassociated with the user device; dynamically updating the resourceregistry with one or more updated CLs; determining an environment mapfor the user device, the environment map comprising resource environmentinformation obtained from the resource registry; matching accesspolicies of the user device with the environment map to dynamicallyassign a profile to the user device; and limiting access to mobileapplications running on the user device based on the profile assigned tothe user device.
 32. The user device of claim 31, wherein the one ormore external resources include an external resource configured todeliver content to a user of the user device.
 33. The user device ofclaim 31, wherein the one or more external resources include at leastone of a computing resource, a display resource, a storage resource, ora network resource.
 34. The user device of claim 31, wherein theenvironment map further comprises physical environment informationobtained from one or more sensors.
 35. The user device of claim 34,wherein the physical environment information comprises locationinformation.
 36. The user device of claim 34, wherein the physicalenvironment information comprises gravity information.
 37. The userdevice of claim 34, wherein the one or more sensors are located withinthe user device.
 38. The user device of claim 31, wherein limitingaccess to mobile applications running on the user device includeslimiting display of content on a display of the user device.
 39. Theuser device of claim 31, wherein the mobile applications include acommunication application.
 40. The user device of claim 29, wherein thecommunication application is a messaging application.